#include<bits/stdc++.h>
using namespace std;
using I=int;
using B=bool;
const I N=1e5;
I a_arr[N];
tuple<I,I,I>jmps[N];
I siz;
I n;
void upd(I i){
I low=i*siz,upp=min((i+1)*siz,n);
for(I j=upp-1;j>=low;j--){
I k=j+a_arr[j];
if(k>=upp){jmps[j]={k,j,1};continue;}
auto[x,y,z]=jmps[k];
jmps[j]={x,y,z+1};
}
}
pair<I,I>qry(I i){
I res1=i,res2=0;
while(i<n){
auto[x,y,z]=jmps[i];
i=x,res1=y,res2+=z;
}
return{res1,res2};
}
I main(){
cin.tie(0)->sync_with_stdio(0);
I m;cin>>n>>m;
for(I i=0;i<n;i++)cin>>a_arr[i];
siz=sqrt(n);
for(I i=0;i<(n+siz-1)/siz;i++)upd(i);
while(m--){
I t;cin>>t;
if(t==0){
I a,b;cin>>a>>b,a--;
a_arr[a]=b,upd(a/siz);
}
if(t==1){
I a;cin>>a,a--;
auto[res1,res2]=qry(a);
printf("%i %i\n",res1+1,res2);
}
}
}
17. Letter Combinations of a Phone Number | 5. Longest Palindromic Substring |
3. Longest Substring Without Repeating Characters | 1312. Minimum Insertion Steps to Make a String Palindrome |
1092. Shortest Common Supersequence | 1044. Longest Duplicate Substring |
1032. Stream of Characters | 987. Vertical Order Traversal of a Binary Tree |
952. Largest Component Size by Common Factor | 212. Word Search II |
174. Dungeon Game | 127. Word Ladder |
123. Best Time to Buy and Sell Stock III | 85. Maximal Rectangle |
84. Largest Rectangle in Histogram | 60. Permutation Sequence |
42. Trapping Rain Water | 32. Longest Valid Parentheses |
Cutting a material | Bubble Sort |
Number of triangles | AND path in a binary tree |
Factorial equations | Removal of vertices |
Happy segments | Cyclic shifts |
Zoos | Build a graph |
Almost correct bracket sequence | Count of integers |